/*
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// Base class
$zindex-tooltip: 10000;
$border-radius: 5px;

$tooltip-max-width: 200px !default;
$tooltip-color: $white !default;
$tooltip-bg: $black !default;
$tooltip-opacity: .9 !default;
$tooltip-padding-y: 3px !default;
$tooltip-padding-x: 8px !default;
$tooltip-margin: 0 !default;

$tooltip-arrow-width: 5px !default;
$tooltip-arrow-height: 5px !default;
$tooltip-arrow-color: $tooltip-bg !default;

.tooltip {
    position: absolute;
    z-index: $zindex-tooltip;
    display: block;
    margin: $tooltip-margin;
    @include reset-text();
    font-size: 14px;
    word-wrap: break-word;
    opacity: 0;

    &.show {
        opacity: $tooltip-opacity;
    }

    .arrow {
        position: absolute;
        display: block;
        width: $tooltip-arrow-width;
        height: $tooltip-arrow-height;
    }

    &.bs-tooltip-top {
        padding: $tooltip-arrow-width 0;
        .arrow {
            bottom: 0;
        }

        .arrow::before {
            margin-left: -($tooltip-arrow-width - 2);
            content: "";
            border-width: $tooltip-arrow-width $tooltip-arrow-width 0;
            border-top-color: $tooltip-arrow-color;
        }
    }
    &.bs-tooltip-right {
        padding: 0 $tooltip-arrow-width;
        .arrow {
            left: 0;
        }

        .arrow::before {
            margin-top: -($tooltip-arrow-width - 2);
            content: "";
            border-width: $tooltip-arrow-width $tooltip-arrow-width $tooltip-arrow-width 0;
            border-right-color: $tooltip-arrow-color;
        }
    }
    &.bs-tooltip-bottom {
        padding: $tooltip-arrow-width 0;
        .arrow {
            top: 0;
        }

        .arrow::before {
            margin-left: -($tooltip-arrow-width - 2);
            content: "";
            border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;
            border-bottom-color: $tooltip-arrow-color;
        }
    }
    &.bs-tooltip-left {
        padding: 0 $tooltip-arrow-width;
        .arrow {
            right: 0;
        }

        .arrow::before {
            right: 0;
            margin-top: -($tooltip-arrow-width - 2);
            content: "";
            border-width: $tooltip-arrow-width 0 $tooltip-arrow-width $tooltip-arrow-width;
            border-left-color: $tooltip-arrow-color;
        }
    }
    &.bs-tooltip-auto {
        &[x-placement^="top"] {
            @extend .bs-tooltip-top;
        }
        &[x-placement^="right"] {
            @extend .bs-tooltip-right;
        }
        &[x-placement^="bottom"] {
            @extend .bs-tooltip-bottom;
        }
        &[x-placement^="left"] {
            @extend .bs-tooltip-left;
        }
    }

    .arrow::before {
        position: absolute;
        border-color: transparent;
        border-style: solid;
    }
}

// Wrapper for the tooltip content
.tooltip-inner {
    max-width: $tooltip-max-width;
    padding: $tooltip-padding-y $tooltip-padding-x;
    color: $tooltip-color;
    text-align: center;
    background-color: $tooltip-bg;
    border-radius: $border-radius;
}
